package cn.stylefeng.guns.modular.fi.service;

import cn.stylefeng.guns.base.pojo.page.LayuiPageInfo;
import cn.stylefeng.guns.modular.fi.entity.FiFreightDetails;
import cn.stylefeng.guns.modular.fi.model.params.FiFreightDetailsParam;
import cn.stylefeng.guns.modular.fi.model.result.FiFreightDetailsResult;
import cn.stylefeng.guns.modular.transport.model.result.TDispatchResult;
import cn.stylefeng.roses.core.reqres.response.ResponseData;
import com.baomidou.mybatisplus.extension.service.IService;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author zhangzh
 * @since 2024-11-04
 */
public interface FiFreightDetailsService extends IService<FiFreightDetails> {

    /**
     * 新增
     *
     * @author zhangzh
     * @Date 2024-11-04
     */
    void add(FiFreightDetailsParam param);

    /**
     * 删除
     *
     * @author zhangzh
     * @Date 2024-11-04
     */
    void delete(FiFreightDetailsParam param);

    /**
     * 更新
     *
     * @author zhangzh
     * @Date 2024-11-04
     */
    void update(FiFreightDetailsParam param);

    /**
     * 修改运费
     * @param param
     */
    ResponseData updateCalcCost(FiFreightDetailsParam param);


    /**
     * 查询单条数据，Specification模式
     *
     * @author zhangzh
     * @Date 2024-11-04
     */
    FiFreightDetailsResult findBySpec(FiFreightDetailsParam param);

    /**
     * 查询列表，Specification模式
     *
     * @author zhangzh
     * @Date 2024-11-04
     */
    List<FiFreightDetailsResult> findListBySpec(FiFreightDetailsParam param);

    /**
     * 查询分页数据，Specification模式
     *
     * @author zhangzh
     * @Date 2024-11-04
     */
     LayuiPageInfo findPageBySpec(FiFreightDetailsParam param, String condition);

    List<FiFreightDetailsResult> listAll(FiFreightDetailsParam param, String condition);


    /**
     *
     * @param dispatchNumber
     * @return
     */
    int delByDispatchNumber(List<String> dispatchNumber);


    /**
     * 审核
     * @param ids
     * @return
     */
    ResponseData shenhe(String ids);

    /**
     * 确认
     * @param ids
     * @return
     */
    ResponseData queren(String ids);

    ResponseData shensu(FiFreightDetailsParam fiFreightDetailsParam);



    /**
     * 推送
     * @param ids
     * @return
     */
    ResponseData tuisong(String ids ,String carrierUserCode);

}
